#include "serverwindow.h"
#include "ui_serverwindow.h"
#include "serveroperation.h"
#include <QDateTime>
#include <QThreadPool>

ServerWindow::ServerWindow(QWidget *parent) :
    QMainWindow(parent),
    ui(new Ui::ServerWindow)
{
    ui->setupUi(this);

    ui->tabWidget->setCurrentIndex(0);
    // 创建用于检测客户端连接任务对象
    AcceptConnect* conn = new AcceptConnect;
    // 将这个任务对象添加到线程池中
    QThreadPool::globalInstance()->start(conn);

    connect(this, &ServerWindow::exitLoopThread, conn, &AcceptConnect::stop);
    // 将日志信息显示到窗口中
    connect(conn, &AcceptConnect::showMsg, this, [=](QString log)
    {
        // 得到当前时间: 年月日 时分秒
        QDateTime tm = QDateTime::currentDateTime();
        // 格式化时间
        QString tmStr = tm.toString("yyyy-MM-dd hh:mm:ss");
        // 数据应该以追加的形式显示到窗口中
        ui->msg->append(tmStr + ": " + log);
    });
    // 初始化设置窗口数据
    connect(ui->tabWidget, &QTabWidget::currentChanged, this, [=](int index)
    {
        if(index == 1)
        {
            ui->setTab->showPage(ConfigSet::Server);
        }
    });
}

ServerWindow::~ServerWindow()
{
    delete ui;
}

void ServerWindow::closeEvent(QCloseEvent *event)
{
    emit exitLoopThread();
}
